import Request from '@/utils/request.js'
let request = new Request().http

function showToastNav(param) {
	if (param.to == "") {
		uni.showToast({
			icon: "none",
			title: "功能仍在开发中，敬请期待上线！",
			// duration: 10
		})
	} else {
		uni.navigateTo({
			url: param.to
		})
	}
}

function toNav(path, isClose=false) {
	if (path != undefined && path != "") {
		if(isClose){
			uni.redirectTo({
				url: path
			})
		}else{
			uni.navigateTo({
				url: path
			})
		}
		
	}
}

function toParamNav(path, param) {
	if (path != undefined && path != "") {
		uni.navigateTo({
			url: path,
			param
		})
	}
}

function toast(msg) {
	uni.showToast({
		icon: "none",
		title: msg,
		// duration: 10
	})
}

function isLogin(route, ischeck = false) {

	
}

function isLoginPre() {
	request({
		url: "/islogin", //请求头
		method: "GET", //请求方式
	}).then(res => {
		if (res.code == 1 && res.data.isLogin == true) {
			request({
				url: "/getCurrentUser", //请求头
				method: "GET", //请求方式
			}).then(i_res => {
				if (i_res.code == 1) {
					uni.setStorageSync("user", JSON.stringify(i_res.data.user))
					uni.setStorageSync("userInfo", JSON.stringify(i_res.data.userInfo))
					uni.setStorageSync("isAdmin", i_res.data.isAdmin)
					uni.setStorageSync("allContractCount", i_res.data.allContractCount)
					uni.setStorageSync("allCommission", i_res.data.allCommission)
					uni.setStorageSync("allOutGoingAmount", i_res.data.allOutGoingAmount)
					if (!i_res.data.isAdmin) {
						uni.switchTab({
							url: "/pages/index/index"
						})
					} else {
						uni.redirectTo({
							url: "/pages/audit/audit"
						})
					}
				} else {
					that.$public.toast(res.msg);
				}
			})
		}
	})
}

function valid(content) {
	return !(content == undefined || content == null || (typeof content == "string" && content == ""))
}

function isNumber(val) {
	if (parseFloat(val).toString() == "NaN") {
		return false;
	} else {
		return true;
	}
}

// 通用导航方法 - 支持tabbar和非tabbar页面
function navigate(url) {
	// 特殊处理联系客服
	if (url === 'service') {
		// 这里需要调用showServiceModal，但在公共工具中无法直接访问组件的状态
		// 因此我们需要调整这个方法，使其更加通用
		throw new Error('联系客服功能需要在组件中处理');
	}
	
	// tabbar页面配置列表
	const tabBarPages = ['/pages/index/index', '/pages/my/my'];
	
	// 检查是否为tabbar页面
	if (tabBarPages.includes(url)) {
		// 使用switchTab跳转tabbar页面
		uni.switchTab({
			url: url,
			success: () => {
				console.log(`切换到tabbar页面: ${url}成功`);
			},
			fail: (err) => {
				console.log(`切换到tabbar页面: ${url}失败`, err);
			}
		});
	} else if (url === 'back') {
		// 返回上一页
		uni.navigateBack();
	} else {
		// 使用navigateTo跳转非tabbar页面
		uni.navigateTo({
			url: url,
			success: () => {
				console.log(`跳转到页面: ${url}成功`);
			},
			fail: (err) => {
				console.log(`跳转到页面: ${url}失败`, err);
			}
		});
	}
}

// 定义API基础路径
const publicApi = '/api';

// 使用ES模块导出语法

export {
	publicApi,
	showToastNav,
	toNav,
	toParamNav,
	toast,
	isLogin,
	isLoginPre,
	valid,
	isNumber,
	navigate
};

// 导出默认值（如果需要）
// export default {
//  	publicApi,
//  	showToastNav,
//  	toNav,
//  	toParamNav,
//  	toast,
//  	isLogin,
//  	isLoginPre,
//  	valid,
//  	isNumber,
//  	navigate
// };